package com.fjbdxk.beidou.bd;
/**
 *解析北斗卫星系统的2级报文
 * 利用提供的配置解析报文头和报文数据
 */
public class BeidouPacketL2 {
    final static int MAX_SIZE = 229;  // 北斗2级报文允许的最大长度

    BeidouPacketL2(TagConfig[] configs) {// 构造函数，接受一个 TagConfig 数组作为参数
        this.configs = configs;// 将传入的 configs 数组赋值给类的成员变量 configs
    }
    // 默认构造函数，没有参数
    BeidouPacketL2() {
        this.configs = PacketData.DEF_CONFIGS;
    }// 将默认的配置数组赋值给 configs，使用 PacketData 类中的 DEF_CONFIGS 常量
    //解析报文的方法
    void parsePacket(byte[] pack) {// 定义一个方法 parsePacket，接受一个字节数组 pack 作为参数
        try {// 开始一个 try 块，用于捕获可能抛出的异常
            packetHeader = new PacketHeader(pack);// 根据传入的包数据创建一个 PacketHeader 对象，并赋值给 packetHeader
            packetData = new PacketData(this.configs);// 使用当前类的 configs 创建一个 PacketData 对象，并赋值给 packetData
            packetData.parseData(pack, packetHeader); // 调用 packetData 对象的 parseData 方法，解析报文数据
        }catch (Exception e) {// 捕获所有异常，并命名为 e
            // toDo: 请在这里加日志记录错误

        }
    }
    // 声明一个 PacketHeader 类型的成员变量 packetHeader
    PacketHeader packetHeader;
    // 声明一个 PacketData 类型的成员变量 packetData
    PacketData packetData;
    // 声明一个 TagConfig 数组类型的成员变量 configs
    TagConfig[] configs;
}
